/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package presenter;

import boundary.ListarAgenciasView;
import collection.CollectionAgencia;
import entity.Agencia;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author jakson
 */
public class ListarAgenciasPresenter {
    private ListarAgenciasView view;
    private collection.CollectionAgencia agencias;
    private ArrayList<Agencia> agen = new ArrayList<Agencia>();
    private int WIDTH;
    
    
    public ListarAgenciasPresenter() {
         
        agencias = new CollectionAgencia();
        agen = agencias.getAgencias();
        view = new ListarAgenciasView(null, true);
        
        view.getBtnNovo().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                novo();
            }
        });
        
        view.getBtnFechar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                fechar();
            }
        });
        
        view.getBtnExcluir().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                excluir();
            }
        });
        
        view.getBtnEditar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
               editar();
            }
        });
     
        
        carregaAgencia(agencias.getAgencias());
        view.setLocationRelativeTo(view);
        view.setVisible(true);
       
    }
    
    private void fechar(){
        view.dispose();
    }
    
    private void novo(){
        new AddAgenciaPresenter("novo",null);
        
    }
    
    private void excluir(){
        
         collection.CollectionAgencia agencia = new CollectionAgencia();
        if (view.getTabelaAgencia().getSelectedRow() < 0) {
            JOptionPane.showMessageDialog(null, "selecione uma linha para excluir", "ERRO", WIDTH);
        } else {
            if (JOptionPane.showConfirmDialog(null, "Tem certeza que realmente deseja excluir a Agência", "Sistema Bancário", 0, 3) == 0) {
                agencia.excluirAgencia(view.getTabelaAgencia().getValueAt(view.getTabelaAgencia().getSelectedRow(), 0).toString());
                view.revalidate();
                
            }
        }
    }
    
    private void editar(){
             
    
    if (view.getTabelaAgencia().getSelectedRow() < 0) {
        JOptionPane.showMessageDialog(null, "selecione uma linha para editar", "ERRo", WIDTH);
    } else {
       
          agencias.editar(view.getTabelaAgencia().getValueAt(view.getTabelaAgencia().getSelectedRow(), 0).toString());
          
        
    }   
        
} 
    
    private void carregaAgencia(ArrayList agencias){
    
        DefaultTableModel tm =  new DefaultTableModel(
                new Object [][]{},
                new String[]{"Código","Cidade","UF"}){
                  
                  @Override
                  public boolean isCellEditable(int row,int col){
                      return false;
                  }
                };
        
        tm.setNumRows(0);
        for (int i = 0; i < agencias.size(); i++) {
        String linha = (agen.get(i).getCodigo() + "," + agen.get(i).getCidade() +
        "," + agen.get(i).getUf()).toString();
        String valores[] = linha.split(",");
        tm.addRow(valores);
        }   
        
       view.getTabelaAgencia().setModel(tm);
        
  }

}
